package py.com.alfa.escriba.gui.controller.object.admin;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.ApplicationContext;

import py.com.alfa.escriba.gui.config.EscribaGUIApplicationContextProvider;
import py.com.alfa.escriba.gui.controller.view.Permissions;
import py.com.alfa.escriba.gui.controller.view.View;
import py.com.alfa.escriba.gui.controller.view.ViewManager;
import py.com.alfa.escriba.gui.controller.view.admin.UsuariosViewContext;
import py.com.alfa.escriba.gui.controller.view.admin.UsuariosViewFragment;
import py.com.alfa.escriba.gui.dto.admin.PerfilDTO;
import py.com.alfa.escriba.gui.dto.admin.UsuarioDTO;
import py.com.alfa.escriba.gui.services.Services;



public class UsuariosControllerObject {
	
	private List<UsuarioDTO> usuarios;
	private UsuarioDTO usuario;
	private List<PerfilDTO> perfiles;
	private ViewManager viewManager;
	
	public UsuariosControllerObject() {
		ApplicationContext ctx = EscribaGUIApplicationContextProvider.getContext();
		this.setViewManager((ViewManager) ctx.getBean(Services.VIEW_MANAGER));
		this.getViewManager().registerContext(View.USUARIOS, new UsuariosViewContext());
		this.setUsuarios(new ArrayList<UsuarioDTO>());
		this.setPerfiles(new ArrayList<PerfilDTO>());
		this.setUsuario(null);
	}

	public UsuariosViewFragment view(){
		return (UsuariosViewFragment) this.getContext().getViewFragment();
	}

	public UsuariosViewContext getContext(){
		return (UsuariosViewContext) getViewManager().getContext(View.USUARIOS);
	}
	
	public Permissions getPermissions(){
		return getViewManager().getPermissions();
	}	
	public ViewManager getViewManager() {
		return viewManager;
	}

	public void setViewManager(ViewManager viewManager) {
		this.viewManager = viewManager;
	}
	
	public String descEstado(boolean activo) {
		return (activo)?"SI":"NO";
	}

	public List<UsuarioDTO> getUsuarios() {
		return usuarios;
	}

	public void setUsuarios(List<UsuarioDTO> usuarios) {
		this.usuarios = usuarios;
	}

	public UsuarioDTO getUsuario() {
		if(this.usuario == null) this.usuario = new UsuarioDTO();
		return usuario;
	}

	public void setUsuario(UsuarioDTO usuario) {
		this.usuario = usuario;
	}
	
	public List<PerfilDTO> getPerfiles() {
		return perfiles;
	}

	public void setPerfiles(List<PerfilDTO> perfiles) {
		this.perfiles = perfiles;
	}
	
		
}
